# -*- coding: utf-8 -*-
"""
Zero-Shot Learning 批量案例
- Zero-Shot Learning 指模型仅通过任务描述，无需示例即可完成新任务
- 本例用 Qwen3:8b 本地模型做情感分析/分类/推理
"""
from langchain_ollama import OllamaLLM

llm = OllamaLLM(model="qwen3:8b", temperature=0.3)

cases = [
    {
        "title": "中文情感分析",
        "prompt": '''你是一个情感分析助手。请判断下列句子的情感（正面/负面/中性），并简要说明理由：

句子：这个产品真的太棒了，我很喜欢！
情感：'''
    },
    {
        "title": "英文情感分析",
        "prompt": '''You are a sentiment analysis assistant. Please determine the sentiment (positive/negative/neutral) of the following sentence and briefly explain why:

Sentence: The service was terrible and I will never come back!
Sentiment:'''
    },
    {
        "title": "新闻分类",
        "prompt": '''你是一个新闻分类助手。请判断下列新闻属于哪个类别（科技/体育/财经/天气/其他），并说明理由：

新闻：特斯拉发布新款电动车。
类别：'''
    },
    {
        "title": "数学应用题解答",
        "prompt": '''你是一个小学数学老师。请直接给出下列应用题的答案，并简要说明理由：

问题：小明有5个苹果，又买了3个，他现在有多少个苹果？
答案：'''
    }
]

if __name__ == "__main__":
    print("【Zero-Shot Learning 批量案例】\n")
    for case in cases:
        print(f"--- {case['title']} ---")
        print("Prompt:\n" + case["prompt"])
        result = llm.invoke(case["prompt"])
        print("模型输出：")
        print(result)
        print("\n")
